package reflect;

import java.lang.reflect.Method;
import java.lang.reflect.Modifier;

public class ReflectDemo6 {
    public static void main(String[] args) throws Exception {
        Class cls = Class.forName("reflect.Person");
        Method method = cls.getMethod("say",String.class,int.class);
        //获取方法名
        String name = method.getName();
        //获取方法修饰符
        int modifier = method.getModifiers();

        switch (modifier){
            case Modifier.PUBLIC:
                System.out.println("是一个公开方法");
                break;
            case Modifier.PRIVATE:
                System.out.println("是一个私有方法");
                break;
            case Modifier.PROTECTED:
                System.out.println("是一个受保护的方法");
                break;
            default:
                System.out.println("其他修饰符");
        }
        //获取方法的返回值类型
        Class returnType = method.getReturnType();
        System.out.println("方法的返回值类型："+returnType.getName());
        //获取参数类型
        Class[] parameterTypes = method.getParameterTypes();
        for (Class parameterType : parameterTypes){
            System.out.println("参数类型："+parameterType.getName());
        }
        System.out.println("方法名："+name);
        System.out.println("方法修饰符："+modifier);
        System.out.println("方法返回值类型："+returnType.getName());
        System.out.println("方法参数类型："+parameterTypes.length+"个");
        for (Class parameterType : parameterTypes){
            System.out.println(parameterType.getName());
        }
    }
}